package luogu;

import java.util.Scanner;

public class P1271 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[] count = new int[n + 1];
        //输入
        //5 10
        //2 5 2 2 5 2 2 2 1 2

        for (int i = 0; i < m; i++) {
            count[sc.nextInt()]++;
        }
        // count的索引：   0, 1, 2, 3, 4, 5 。。。
        // count数组存的值：0, 1, 7, 0, 0, 2 。。。（后面全是0）
        // 输出索引从小到大，存的值就是输出次数。

        // 如果使用多次 System.out.print() 来输出，它的调用会导致大量 I/O 操作
        // 并且每次输出都有 " " 字符串创建开销
        // 所以，我们使用 StringBuilder 来代替 System.out.print()
        StringBuilder sb = new StringBuilder(m * 2);
        for (int i = 1; i < count.length; i++) {
            // 把数组的索引作为票号，例如，1索引中存的值是1号的票数
            // 索引存的多少值，就输出多少次索引值即票号
            for (int j = 0; j < count[i]; j++) {
                sb.append(i).append(" ");
            }
        }
        System.out.println(sb);
    }
}
